﻿using System.Xml.Serialization;

namespace Ant.Interface.Mef.Model.Catalogs.CatalogType
{
    /// <summary>
    /// 目录类型。
    /// </summary>
    public enum CatalogType
    {
        /// <summary>
        /// 文件夹目录。
        /// </summary>
        DirectoryCatalog = 0,

        /// <summary>
        /// 程序集目录。
        /// </summary>
        AssemblyCatalog = 1,

        /// <summary>
        /// 类型目录。
        /// </summary>
        TypeCatalog = 2
    }

    /// <summary>
    /// 目录配置基类。
    /// </summary>
    public abstract class CatalogConfigBase
    {
        /// <summary>
        /// 目录类型。
        /// </summary>
        public abstract CatalogType CatalogType { get; }

        /// <summary>
        /// 组合部件。
        /// </summary>
        [XmlIgnore]
        public abstract object ComposablePart { get; }
    }
}